home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1994 #2
/
Monster Media No. 2 (Monster Media)(1994).ISO
/
pcboard
/
ppepakts.zip
/
BJ.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1994-05-30
|
28KB
|
1,338 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Date TDATE001(1000)
Integer INTEGER001
Integer TINTEGER002(12)
Integer TINTEGER003(12)
Integer INTEGER004
Integer INTEGER005
Integer INTEGER006
Integer INTEGER007
Integer INTEGER008
Integer INTEGER009
Integer INTEGER010
Integer INTEGER011
Integer INTEGER012
Integer INTEGER013
Integer TINTEGER014(12)
Integer TINTEGER015(12)
Integer INTEGER016
Integer INTEGER017
Integer INTEGER018
Integer INTEGER019
Integer INTEGER020
Integer INTEGER021
Integer INTEGER022
Integer INTEGER023
Integer INTEGER024
Integer INTEGER025
Integer INTEGER026
Money TMONEY001(1000)
Money MONEY002
Money MONEY003
Money MONEY004
Money MONEY005
Money MONEY006
String STRING001
String STRING002
String TSTRING003(1000)
String STRING004
String STRING005
String TSTRING006(12)
String TSTRING007(12)
String STRING008
String STRING009
String STRING010
String STRING011
String STRING012
String STRING013
String STRING014
String STRING015
String STRING016
String STRING017
String STRING018
;------------------------------------------------------------------------------
Cls
STRING008 = " A 2 3 4 5 6 7 8 910 J Q K A 2 3 4 5 6 7 8 910 J Q K A 2 3 4 5 6 7 8 910 J Q K A 2 3 4 5 6 7 8 910 J Q K"
STRING010 = "01020304050607080910101010010203040506070809101010100102030405060708091010101001020304050607080910101010"
STRING002 = "YES"
Gosub LABEL022
If (INTEGER001 <> 942702) Then
Gosub LABEL030
Else
Gosub LABEL029
Endif
GetUser
Gosub LABEL027
Newline
If (STRING004 == "YES") Then
STRING015 = "N"
Else
STRING015 = "Y"
Endif
InputYN "Would like the instructions/rules", STRING015, 14
If (STRING015 <> YesChar()) Then
Goto LABEL001
Else
Goto LABEL031
Endif
:LABEL001
STRING017 = Time()
STRING016 = "Started BLACKJACK at "
Log STRING016 + STRING017, 1
Cls
AnsiPos 17, 1
Print "@X0DB L A C K J A C K"
AnsiPos 1, 1
Print "@X03Dealer"
AnsiPos 1, 2
Print "@X0E┌─────┐┌─────┐"
AnsiPos 1, 3
Print "@X0E│ ││ │"
AnsiPos 1, 4
Print "@X0E│@X80 @X0E││@X80 @X0E│"
AnsiPos 1, 5
Print "@X0E│ ││ │"
AnsiPos 1, 6
Print "@X0E└─────┘└─────┘"
AnsiPos 1, 8
PrintLn "@X03@FIRST@"
AnsiPos 1, 9
Print "@X0B┌─────┐┌─────┐"
AnsiPos 1, 10
Print "@X0B│ ││ │"
AnsiPos 1, 11
Print "@X0B│@X80 @X0B││@X80 @X0B│"
AnsiPos 1, 12
Print "@X0B│ ││ │"
AnsiPos 1, 13
Print "@X0B└─────┘└─────┘"
AnsiPos 58, 1
Print "@X0BStatistics"
AnsiPos 44, 2
Print "@X78┌───────────────────────┬─────────┐"
AnsiPos 44, 3
Print "@X78│ @X75Money@X78 │@X75Min. left@X78│@X08█"
AnsiPos 44, 4
Print "@X78│ @X7E", Right(MONEY002, 8), " @X78│@X7E", Right(MinLeft(), 6), " @X78│@X08█"
AnsiPos 44, 5
Print "@X78├───────────┬───────────┼─────────┤█"
AnsiPos 44, 6
Print "@X78│ @X75Insurance@X78 │ @X75Bet Hand1@X78 │@X75Bet Hand2@X78│@X08█"
AnsiPos 44, 7
Print "@X78│ │ │ │@X08█"
AnsiPos 44, 8
Print "@X78└───────────┴───────────┴─────────┘@X08█"
AnsiPos 44, 9
Print "@X08 ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀"
AnsiPos 44, 10
Print "@X78┌─────────────────────────────────┐"
AnsiPos 44, 11
Print "@X78│ │@X08█"
AnsiPos 44, 12
Print "@X78└─────────────────────────────────┘@X08█"
AnsiPos 44, 13
Print "@X08 ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀"
AnsiPos 44, 14
Print "@X78┌─────────────────────────────────┐"
AnsiPos 44, 15
Print "@X78│ │@X08█"
AnsiPos 44, 16
Print "@X78├────────────────┬────────────────┤@X08█"
AnsiPos 44, 17
Print "@X78│ @X75Dealer@X78 │ @X75You@X78 │@X08█"
AnsiPos 44, 18
Print "@X78│ │ │@X08█"
AnsiPos 44, 19
Print "@X78└────────────────┴────────────────┘@X08█"
AnsiPos 44, 20
Print "@X08 ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀"
:LABEL002
Gosub LABEL023
AnsiPos 59, 4
Print "@X7E", Right(MONEY002, 8)
AnsiPos 69, 4
Print "@X7E", Right(MinLeft(), 6)
AnsiPos 46, 7
Print "@X77", Space(9)
AnsiPos 59, 7
Print "@X77", Space(9)
AnsiPos 69, 7
Print "@X77", Space(9)
:LABEL003
STRING018 = ""
STRING013 = "HAND1"
STRING014 = "N"
MONEY006 = 0
MONEY004 = 0
INTEGER005 = 0
STRING009 = "NO"
STRING011 = "None"
INTEGER016 = 2
INTEGER017 = 2
INTEGER024 = 8
INTEGER019 = 0
INTEGER020 = 0
AnsiPos 46, 11
InputStr "Bet ($1 min) or (Q)uit", STRING018, 126, 5, " QDMCNF.1234567890", 8
If (STRING018 == "") Then
Goto LABEL003
Endif
AnsiPos 46, 11
Print "@X7E", Space(30), "@X0E"
AnsiPos 50, 15
Print "@X7B", Space(27), "@X0E"
AnsiPos 52, 18
Print "@X7C", Space(2), "@X0E"
AnsiPos 66, 18
Print "@X7C", Space(7), "@X0E"
If ((STRING018 == "D") && ((U_Name() == "DEAN HUNTLEY") || (CurSec() >= SysopSec()))) Then
Cls
DispFile PPEPath() + "BJ.dat", 2 + 1 + 4
Wait
Goto LABEL001
Endif
If ((STRING018 == "M") && ((U_Name() == "DEAN HUNTLEY") || (CurSec() >= SysopSec()))) Then
Cls
InputText "Change dollar amount", MONEY002, 14, 7
Newline
Wait
Goto LABEL001
Endif
If ((STRING018 == "CNF") && ((U_Name() == "DEAN HUNTLEY") || (CurSec() >= SysopSec()))) Then
Cls
InputText "Change BBS name", STRING001, 14, 45
Newline
InputText "Change verfication #", INTEGER001, 14, 6
Newline
InputText "Change starting bet", MONEY003, 14, 7
Newline
FOpen 0, PPEPath() + "BJ.cnf", 1, 0
FPutLn 0, STRING001
FPutLn 0, INTEGER001
FPutLn 0, MONEY003
FClose 0
Wait
Goto LABEL001
Endif
If (STRING018 == "Q") Then
Goto LABEL021
Endif
MONEY004 = S2I(STRING018, 10)
MONEY004 = MONEY004 * 100
If (MONEY004 > MONEY002) Then
AnsiPos 1, 19
Print "@X09You don't have ", MONEY004, " to bet."
Goto LABEL003
Endif
If (MONEY004 <= 0) Then
Goto LABEL003
Endif
AnsiPos 59, 7
Print "@X74", Right(MONEY004, 8), "@X0E"
Gosub LABEL026
AnsiPos 1, 17
Print "@X8DDealing cards . . . ."
Gosub LABEL015
Gosub LABEL018
Gosub LABEL019
AnsiPos 1, 17
Print "@X0E "
STRING002 = ""
If ((TINTEGER014(2) == 1) && (MONEY002 - MONEY004 >= 1)) Then
STRING015 = "Y"
AnsiPos 1, 14
InputYN "Would you like insurance", STRING015, 14
If (STRING015 == YesChar()) Then
:LABEL004
MONEY005 = MONEY002 - MONEY004
AnsiPos 1, 16
Print "@X0DYou have ", MONEY005, " to insure with."
AnsiPos 1, 15
InputStr "How much ($500 max)", MONEY006, 14, 6, "1234567890", 8
If (((MONEY006 < 1) || (MONEY006 > MONEY005)) || (MONEY006 > 50000)) Then
AnsiPos 1, 15
Print Space(43)
Goto LABEL004
Endif
AnsiPos 1, 14
Print Space(43)
AnsiPos 1, 15
Print Space(43)
AnsiPos 1, 16
Print Space(43)
AnsiPos 46, 7
Print "@X74", Right(MONEY006, 7), "@X0E"
Goto LABEL005
Goto LABEL005
Endif
AnsiPos 1, 14
Print Space(43)
MONEY006 = 0
Goto LABEL005
Endif
:LABEL005
Gosub LABEL010
If (MONEY006 > 0) Then
MONEY002 = MONEY002 - MONEY006
AnsiPos 46, 7
Print "@X74(", Right(MONEY006, 7), ")@X0E"
Endif
:LABEL006
AnsiPos 1, 14
Print "@X0DYour hand = ", INTEGER013
AnsiPos 1, 16
If ((Mid(TSTRING007(1), 5, 2) == Mid(TSTRING007(2), 5, 2)) && (MONEY004 * 2 <= MONEY002)) Then
InputStr "What would you like to do (H,S,SP,D)", STRING002, 14, 2, "HSPD", 8
ElseIf ((Mid(TSTRING007(1), 5, 2) == Mid(TSTRING007(2), 5, 2)) && (MONEY004 * 2 > MONEY002)) Then
InputStr "What would you like to do (H,S)", STRING002, 14, 1, "HS", 8
ElseIf (MONEY004 * 2 <= MONEY002) Then
InputStr "What would you like to do (H,S,D)", STRING002, 14, 1, "HSD", 8
Else
InputStr "What would you like to do (H,S)", STRING002, 14, 1, "HS", 8
Endif
AnsiPos 1, 14
Print Space(43)
AnsiPos 1, 16
Print Space(43)
:LABEL007
If (((STRING002 == "SP") && (Mid(TSTRING007(1), 5, 2) == Mid(TSTRING007(2), 5, 2))) && (MONEY004 * 2 <= MONEY002)) Then
STRING014 = "Y"
Else
If (STRING002 == "H") Then
Gosub LABEL013
Goto LABEL006
Endif
If (STRING002 == "D") Then
MONEY004 = MONEY004 * 2
Gosub LABEL013
STRING002 = "S"
Endif
If (STRING002 == "S") Then
AnsiPos 3, 4
Print TSTRING006(1)
If (INTEGER004 <= 16) Then
Gosub LABEL014
Endif
Gosub LABEL009
Else
Goto LABEL006
Endif
:LABEL008
Gosub LABEL011
If (MONEY002 == 0) Then
AnsiPos 1, 21
Print "@X0EYou are out of money. Play again tomorrow."
Delay 90
Else
Goto LABEL002
:LABEL009
If (STRING014 == "N") Then
If (INTEGER004 == INTEGER013) Then
STRING009 = "PUSH"
Goto LABEL008
Endif
If (INTEGER004 > INTEGER013) Then
STRING009 = "NO"
Goto LABEL008
Endif
If (INTEGER004 < INTEGER013) Then
STRING009 = "YES"
Goto LABEL008
Endif
Endif
If ((((STRING014 == "Y") && (INTEGER004 <= 21)) && (INTEGER013 <= 21)) && (INTEGER006 <= 21)) Then
If ((INTEGER004 == INTEGER013) && (INTEGER004 == INTEGER006)) Then
STRING009 = "TWOPUSH"
Goto LABEL008
Endif
If ((INTEGER004 == INTEGER013) && (INTEGER004 > INTEGER006)) Then
STRING009 = "ONEPUSH"
Goto LABEL008
Endif
If ((INTEGER004 > INTEGER013) && (INTEGER004 == INTEGER006)) Then
STRING009 = "ONEPUSH"
Goto LABEL008
Endif
If ((INTEGER004 < INTEGER013) && (INTEGER004 == INTEGER006)) Then
STRING009 = "ONEPUSHWIN"
Goto LABEL008
Endif
If ((INTEGER004 == INTEGER013) && (INTEGER004 < INTEGER006)) Then
STRING009 = "ONEPUSHWIN"
Goto LABEL008
Endif
If ((INTEGER004 > INTEGER013) && (INTEGER004 > INTEGER006)) Then
STRING009 = "NO"
Goto LABEL008
Endif
If ((INTEGER004 < INTEGER013) && (INTEGER004 > INTEGER006)) Then
STRING009 = "ONEWIN"
Goto LABEL008
Endif
If ((INTEGER004 > INTEGER013) && (INTEGER004 < INTEGER006)) Then
STRING009 = "ONEWIN"
Goto LABEL008
Endif
If ((INTEGER004 < INTEGER013) && (INTEGER004 < INTEGER006)) Then
STRING009 = "TWOWIN"
Goto LABEL008
Endif
Endif
If ((((STRING014 == "Y") && (INTEGER004 <= 21)) && (INTEGER013 > 21)) && (INTEGER006 <= 21)) Then
If (INTEGER004 == INTEGER006) Then
STRING009 = "ONEPUSH"
Goto LABEL008
Endif
If (INTEGER004 > INTEGER006) Then
STRING009 = "NO"
Goto LABEL008
Endif
If (INTEGER004 < INTEGER006) Then
STRING009 = "ONEWIN"
Goto LABEL008
Endif
Endif
If ((((STRING014 == "Y") && (INTEGER004 <= 21)) && (INTEGER013 <= 21)) && (INTEGER006 > 21)) Then
If (INTEGER004 == INTEGER013) Then
STRING009 = "ONEPUSH"
Goto LABEL008
Endif
If (INTEGER004 > INTEGER013) Then
STRING009 = "NO"
Goto LABEL008
Endif
If (INTEGER004 < INTEGER013) Then
STRING009 = "ONEWIN"
Goto LABEL008
Endif
Endif
If ((((STRING014 == "Y") && (INTEGER004 <= 21)) && (INTEGER013 > 21)) && (INTEGER006 > 21)) Then
STRING009 = "NO"
Goto LABEL008
Endif
If ((STRING014 == "Y") && (INTEGER004 > 21)) Then
If ((INTEGER013 <= 21) && (INTEGER006 > 21)) Then
STRING009 = "ONEWIN"
Goto LABEL008
Endif
If ((INTEGER013 > 21) && (INTEGER006 <= 21)) Then
STRING009 = "ONEWIN"
Goto LABEL008
Endif
If ((INTEGER013 <= 21) && (INTEGER006 <= 21)) Then
STRING009 = "TWOWIN"
Goto LABEL008
Endif
If ((INTEGER013 > 21) && (INTEGER006 > 21)) Then
STRING009 = "NO"
Goto LABEL008
Endif
Endif
Return
:LABEL010
If (STRING014 == "N") Then
If (((INTEGER004 == 21) && (INTEGER013 == 21)) && (MONEY006 > 0)) Then
STRING009 = "PUSHBJINS"
Goto LABEL008
Endif
If (((INTEGER004 == 21) && (INTEGER013 == 21)) && (MONEY006 <= 0)) Then
STRING009 = "PUSHBJ"
Goto LABEL008
Endif
If (((INTEGER004 == 21) && (INTEGER013 <> 21)) && (MONEY006 > 0)) Then
STRING009 = "NOBJINS"
Goto LABEL008
Endif
If (((INTEGER004 == 21) && (INTEGER013 <> 21)) && (MONEY006 <= 0)) Then
STRING009 = "NOBJ"
Goto LABEL008
Endif
If ((INTEGER013 == 21) && (INTEGER004 <> 21)) Then
STRING009 = "YESBJ"
Goto LABEL008
Endif
Endif
Return
:LABEL011
AnsiPos 3, 4
Print TSTRING006(1)
AnsiPos 52, 18
Print "@X71", Right(INTEGER004, 2)
If (STRING014 == "N") Then
AnsiPos 69, 18
Print "@X71", Right(INTEGER013, 2)
Else
AnsiPos 66, 18
Print "@X71", Right(INTEGER013, 2), " & ", Right(INTEGER006, 2)
Endif
If (STRING009 == "BUSTED") Then
AnsiPos 50, 15
Print "@X7CBUSTED - YOU LOSE!!!"
MONEY002 = MONEY002 - MONEY004
AnsiPos 46, 21
Print "@X0EYou bet @X0C", MONEY004, "@X0E and lost @X0C", MONEY004, "@X0E."
Return
Endif
If (STRING009 == "CBUSTED") Then
AnsiPos 50, 15
Print "@X7CDEALER BUSTED - YOU WIN!"
MONEY002 = MONEY002 + MONEY004
AnsiPos 46, 21
Print "@X0EYou bet @X0C", MONEY004, "@X0E and won @X0C", MONEY004, "@X0E."
Return
Endif
If (STRING009 == "YESBJ") Then
AnsiPos 50, 15
Print "@X7CBLACKJACK - YOU WIN!!!"
MONEY002 = MONEY002 + MONEY004 * 2
MONEY005 = MONEY004 * 2
AdjTime 10
AnsiPos 46, 21
Print "@X0EYou bet @X0C", MONEY004, "@X0E and won @X0C", MONEY005, "@X0E."
Return
Endif
If (STRING009 == "NOBJINS") Then
AnsiPos 50, 15
Print "@X7CBLACKJACK - DEALER WINS"
MONEY002 = MONEY002 - MONEY004
MONEY002 = MONEY002 + MONEY006 * 2
AnsiPos 1, 21
Print "@X0EYou wagered @X0C", MONEY006, "@X0E for insurance and won."
AnsiPos 46, 21
Print "@X0EYou bet @X0C", MONEY004, "@X0E and lost @X0C", MONEY004, "@X0E."
Return
Endif
If (STRING009 == "NOBJ") Then
AnsiPos 50, 15
Print "@X7CBLACKJACK - DEALER WINS"
MONEY002 = MONEY002 - MONEY004
AnsiPos 46, 21
Print "@X0EYou bet @X0C", MONEY004, "@X0E and lost @X0C", MONEY004, "@X0E."
Return
Endif
If (STRING009 == "PUSHBJINS") Then
AnsiPos 50, 15
Print "@X7CBLACKJACK - IT'S A PUSH!!!"
MONEY002 = MONEY002
MONEY002 = MONEY002 + MONEY006 * 2
MONEY005 = MONEY004
AnsiPos 1, 21
Print "@X0EYou wagered @X0C", MONEY006, "@X0E for insurance and won."
AnsiPos 46, 21
Print "@X0EYou bet @X0C", MONEY004, "@X0E and won @X0C", MONEY005, "@X0E."
Return
Endif
If (STRING009 == "PUSHBJ") Then
AnsiPos 50, 15
Print "@X7CBLACKJACK - IT'S A PUSH!!!"
MONEY002 = MONEY002
MONEY005 = MONEY004
AnsiPos 46, 21
Print "@X0EYou bet @X0C", MONEY004, "@X0E and won @X0C", MONEY005, "@X0E."
Return
Endif
If (STRING009 == "YES") Then
AnsiPos 50, 15
Print "@X7CYOU WIN!!!"
MONEY002 = MONEY002 + MONEY004
AnsiPos 46, 21
Print "@X0EYou bet @X0C", MONEY004, "@X0E and won @X0C", MONEY004, "@X0E."
Return
Endif
If (STRING009 == "PUSH") Then
AnsiPos 50, 15
Print "@X7CIT'S A PUSH"
MONEY002 = MONEY002
AnsiPos 46, 21
Print "@X0EYou bet @X0C", MONEY004, "@X0E and kept your bet."
Return
Endif
If (STRING009 == "ONEPUSH") Then
AnsiPos 50, 15
Print "@X7CYOU PUSHED ONE HAND"
MONEY002 = MONEY002 - MONEY004
MONEY005 = MONEY004 * 2
AnsiPos 46, 21
Print "@X0EYou bet @X0C", MONEY005, "@X0E and won @X0C", MONEY004, "@X0E."
Return
Endif
If (STRING009 == "ONEPUSHWIN") Then
AnsiPos 50, 15
Print "@X7CYOU PUSHED & WON ONE HAND"
MONEY002 = MONEY002 + MONEY004
MONEY005 = MONEY004 * 2
AnsiPos 46, 21
Print "@X0EYou bet @X0C", MONEY005, "@X0E and won @X0C", MONEY004, "@X0E."
Return
Endif
If (STRING009 == "TWOPUSH") Then
AnsiPos 50, 15
Print "@X7CYOU PUSHED BOTH HANDS"
MONEY002 = MONEY002
MONEY005 = MONEY004 * 2
AnsiPos 46, 21
Print "@X0EYou bet @X0C", MONEY005, "@X0E and won @X0C", MONEY005, "@X0E."
Return
Endif
If (STRING009 == "ONEWIN") Then
AnsiPos 50, 15
Print "@X7CYOU WON ONE HAND"
MONEY002 = MONEY002 + MONEY004
MONEY005 = MONEY004 * 2
AnsiPos 46, 21
Print "@X0EYou bet @X0C", MONEY005, "@X0E and won @X0C", MONEY004, "@X0E."
Return
Endif
If (STRING009 == "TWOWIN") Then
AnsiPos 50, 15
Print "@X7CYOU WON BOTH HANDS"
MONEY005 = MONEY004 * 2
MONEY002 = MONEY002 + MONEY005
AnsiPos 46, 21
Print "@X0EYou won @X0C", MONEY005, "@X0E."
Return
Endif
If (STRING009 == "NO") Then
AnsiPos 50, 15
Print "@X7CDEALER WON"
If (STRING013 == "HAND1") Then
MONEY002 = MONEY002 - MONEY004
AnsiPos 46, 21
Print "@X0EYou bet @X0C", MONEY004, "@X0E and lost @X0C", MONEY004, "@X0E."
Goto LABEL012
Endif
MONEY005 = MONEY004 * 2
MONEY002 = MONEY002 - MONEY005
AnsiPos 46, 21
Print "@X0EYou bet @X0C", MONEY005, "@X0E and lost @X0C", MONEY005, "@X0E."
Endif
:LABEL012
Return
:LABEL013
INTEGER017 = INTEGER017 + 1
If (INTEGER017 == 3) Then
INTEGER021 = 15
Endif
If (INTEGER017 == 4) Then
INTEGER021 = 22
Endif
If (INTEGER017 == 5) Then
INTEGER021 = 29
Endif
If (INTEGER017 == 6) Then
INTEGER021 = 36
Endif
AnsiPos INTEGER021, 9
Print "@X0B┌─────┐"
AnsiPos INTEGER021, 10
Print "@X0B│ │"
AnsiPos INTEGER021, 11
Print "@X0B│@X80 @X0B│"
AnsiPos INTEGER021, 12
Print "@X0B│ │"
AnsiPos INTEGER021, 13
Print "@X0B└─────┘"
AnsiPos INTEGER021 + 2, 11
Print TSTRING007(INTEGER017)
Gosub LABEL019
If (INTEGER013 > 21) Then
STRING009 = "BUSTED"
Goto LABEL008
Endif
If (INTEGER013 == 21) Then
STRING002 = "S"
Goto LABEL007
Endif
Return
:LABEL014
INTEGER016 = INTEGER016 + 1
If (INTEGER016 == 3) Then
INTEGER022 = 15
Endif
If (INTEGER016 == 4) Then
INTEGER022 = 22
Endif
If (INTEGER016 == 5) Then
INTEGER022 = 29
Endif
If (INTEGER016 == 6) Then
INTEGER022 = 36
Endif
AnsiPos INTEGER022, 2
Print "@X0E┌─────┐"
AnsiPos INTEGER022, 3
Print "@X0E│ │"
AnsiPos INTEGER022, 4
Print "@X0E│@X80 @X0E│"
AnsiPos INTEGER022, 5
Print "@X0E│ │"
AnsiPos INTEGER022, 6
Print "@X0E└─────┘"
AnsiPos INTEGER022 + 2, 4
Print TSTRING006(INTEGER016)
Gosub LABEL018
If (INTEGER004 < 17) Then
Goto LABEL014
Endif
If ((INTEGER004 > 21) && (STRING014 == "N")) Then
STRING009 = "CBUSTED"
Goto LABEL008
Endif
If ((INTEGER004 > 21) && (STRING014 == "Y")) Then
Gosub LABEL009
Goto LABEL008
Endif
Return
:LABEL015
For INTEGER018 = 1 To 12
TINTEGER002(INTEGER018) = 0
TINTEGER003(INTEGER018) = 0
Next
For INTEGER010 = 1 To 12
:LABEL016
TINTEGER002(INTEGER010) = Random(52)
If (TINTEGER002(INTEGER010) < 1) Goto LABEL016
For INTEGER018 = 1 To 12
If (TINTEGER002(INTEGER010) == TINTEGER003(INTEGER018)) Goto LABEL016
Next
If (INTEGER010 > 1) Then
For INTEGER023 = 1 To INTEGER010 - 1
If (TINTEGER002(INTEGER023) == TINTEGER002(INTEGER010)) Goto LABEL016
Next
Endif
TSTRING006(INTEGER010) = Mid(STRING008, TINTEGER002(INTEGER010) * 3 - 2, 3)
If (Mid(TSTRING006(INTEGER010), 3, 1) == "") Then
TSTRING006(INTEGER010) = "@X0C" + TSTRING006(INTEGER010)
Endif
If (Mid(TSTRING006(INTEGER010), 3, 1) == "") Then
TSTRING006(INTEGER010) = "@X0B" + TSTRING006(INTEGER010)
Endif
If (Mid(TSTRING006(INTEGER010), 3, 1) == "") Then
TSTRING006(INTEGER010) = "@X03" + TSTRING006(INTEGER010)
Endif
If (Mid(TSTRING006(INTEGER010), 3, 1) == "") Then
TSTRING006(INTEGER010) = "@X09" + TSTRING006(INTEGER010)
Endif
TINTEGER014(INTEGER010) = Mid(STRING010, TINTEGER002(INTEGER010) * 2 - 1, 2)
If (INTEGER010 == 1) Then
AnsiPos 3, 4
Print "@X0D ? "
Endif
If (INTEGER010 == 8) Then
AnsiPos 10, 4
Print TSTRING006(2)
Endif
:LABEL017
TINTEGER003(INTEGER010) = Random(52)
If (TINTEGER003(INTEGER010) < 1) Goto LABEL017
For INTEGER018 = 1 To 12
If (TINTEGER003(INTEGER010) == TINTEGER002(INTEGER018)) Goto LABEL017
Next
If (INTEGER010 > 1) Then
For INTEGER023 = 1 To INTEGER010 - 1
If (TINTEGER003(INTEGER023) == TINTEGER003(INTEGER010)) Goto LABEL017
Next
Endif
TSTRING007(INTEGER010) = Mid(STRING008, TINTEGER003(INTEGER010) * 3 - 2, 3)
If (Mid(TSTRING007(INTEGER010), 3, 1) == "") Then
TSTRING007(INTEGER010) = "@X0A" + TSTRING007(INTEGER010)
Endif
If (Mid(TSTRING007(INTEGER010), 3, 1) == "") Then
TSTRING007(INTEGER010) = "@X0B" + TSTRING007(INTEGER010)
Endif
If (Mid(TSTRING007(INTEGER010), 3, 1) == "") Then
TSTRING007(INTEGER010) = "@X03" + TSTRING007(INTEGER010)
Endif
If (Mid(TSTRING007(INTEGER010), 3, 1) == "") Then
TSTRING007(INTEGER010) = "@X09" + TSTRING007(INTEGER010)
Endif
TINTEGER015(INTEGER010) = Mid(STRING010, TINTEGER003(INTEGER010) * 2 - 1, 2)
If (INTEGER010 == 4) Then
AnsiPos 3, 11
Print TSTRING007(1)
Endif
If (INTEGER010 == 12) Then
AnsiPos 10, 11
Print TSTRING007(2)
Endif
Next
Return
:LABEL018
INTEGER004 = 0
For INTEGER010 = 1 To INTEGER016
If (TINTEGER014(INTEGER010) > 10) Then
INTEGER004 = INTEGER004 + 10
Endif
If ((TINTEGER014(INTEGER010) > 1) && (TINTEGER014(INTEGER010) <= 10)) Then
INTEGER004 = INTEGER004 + TINTEGER014(INTEGER010)
Endif
If (TINTEGER014(INTEGER010) == 1) Then
INTEGER020 = INTEGER020 + 1
INTEGER004 = INTEGER004 + TINTEGER014(INTEGER010)
Endif
Next
For INTEGER010 = 1 To INTEGER020
If (INTEGER004 + 10 > 21) Then
Break
Continue
Endif
INTEGER004 = INTEGER004 + 10
Next
Return
:LABEL019
INTEGER013 = 0
For INTEGER010 = 1 To INTEGER017
If (TINTEGER015(INTEGER010) > 10) Then
INTEGER013 = INTEGER013 + 10
Endif
If ((TINTEGER015(INTEGER010) > 1) && (TINTEGER015(INTEGER010) <= 10)) Then
INTEGER013 = INTEGER013 + TINTEGER015(INTEGER010)
Endif
If (TINTEGER015(INTEGER010) == 1) Then
INTEGER019 = INTEGER019 + 1
INTEGER013 = INTEGER013 + TINTEGER015(INTEGER010)
Endif
Next
For INTEGER010 = 1 To INTEGER019
If (INTEGER013 + 10 > 21) Then
Break
Continue
Endif
INTEGER013 = INTEGER013 + 10
Next
Return
:LABEL020
INTEGER006 = 0
For INTEGER010 = 7 To INTEGER024
If (TINTEGER015(INTEGER010) > 10) Then
INTEGER006 = INTEGER006 + 10
Endif
If ((TINTEGER015(INTEGER010) > 1) && (TINTEGER015(INTEGER010) <= 10)) Then
INTEGER006 = INTEGER006 + TINTEGER015(INTEGER010)
Endif
If (TINTEGER015(INTEGER010) == 1) Then
INTEGER007 = INTEGER007 + 1
INTEGER006 = INTEGER006 + TINTEGER015(INTEGER010)
Endif
Next
For INTEGER010 = 1 To INTEGER007
If (INTEGER006 + 10 > 21) Then
Break
Continue
Endif
INTEGER006 = INTEGER006 + 10
Next
Return
Endif
:LABEL021
If (STRING004 == "YES") Then
If ((U_Name() == "DEAN HUNTLEY") || (CurSec() >= SysopSec())) Then
TDATE001(INTEGER009) = "00-00-00"
Else
TDATE001(INTEGER009) = Date()
Endif
TMONEY001(INTEGER009) = MONEY002
Else
INTEGER008 = INTEGER008 + 1
If ((U_Name() == "DEAN HUNTLEY") || (CurSec() >= SysopSec())) Then
TDATE001(INTEGER008) = "00-00-00"
Else
TDATE001(INTEGER008) = Date()
Endif
TSTRING003(INTEGER008) = U_Name()
TMONEY001(INTEGER008) = MONEY002
Endif
Gosub LABEL024
FOpen 0, PPEPath() + "BJ.DAT", 1, 0
FPutLn 0, INTEGER008
For INTEGER010 = 1 To INTEGER008
FPutLn 0, TDATE001(INTEGER010)
FPutLn 0, TSTRING003(INTEGER010)
FPutLn 0, TMONEY001(INTEGER010)
Next
FClose 0
Goto LABEL032
:LABEL022
FOpen 0, PPEPath() + "bj.cnf", 0, 0
FGet 0, STRING001
FGet 0, INTEGER001
FGet 0, MONEY003
FClose 0
Return
:LABEL023
If (MinLeft() <= 5) Then
AnsiPos 1, 20
Print "@X0EYou only have ", MinLeft(), " minutes left on your session."
Endif
If (MinLeft() < 2) Then
AnsiPos 1, 20
Print "@X0EI am saving your game at this point. You only have ", MinLeft(), " minute left."
Goto LABEL021
Endif
Return
:LABEL024
INTEGER011 = 0
While (INTEGER011 == 0) Do
INTEGER011 = 1
For INTEGER012 = 1 To INTEGER008
If (TMONEY001(INTEGER012) >= TMONEY001(INTEGER012 + 1)) Then
Continue
Endif
STRING005 = TMONEY001(INTEGER012)
TMONEY001(INTEGER012) = TMONEY001(INTEGER012 + 1)
TMONEY001(INTEGER012 + 1) = STRING005
STRING005 = TSTRING003(INTEGER012)
TSTRING003(INTEGER012) = TSTRING003(INTEGER012 + 1)
TSTRING003(INTEGER012 + 1) = STRING005
STRING005 = TDATE001(INTEGER012)
TDATE001(INTEGER012) = TDATE001(INTEGER012 + 1)
TDATE001(INTEGER012 + 1) = STRING005
INTEGER011 = 0
Next
EndWhile
Return
Endif
STRING002 = ""
STRING012 = 0
INTEGER025 = 0
INTEGER017 = 2
INTEGER024 = 8
STRING013 = "HAND1"
AnsiPos 10, 11
Print Space(3)
STRING012 = TSTRING007(2)
INTEGER025 = TINTEGER003(2)
INTEGER026 = TINTEGER015(2)
TSTRING007(2) = TSTRING007(7)
TINTEGER003(2) = TINTEGER003(7)
TINTEGER015(2) = TINTEGER015(7)
TSTRING007(7) = STRING012
TINTEGER003(7) = INTEGER025
TINTEGER015(7) = INTEGER026
AnsiPos 1, 15
Print "@X0B┌─────┐┌─────┐"
AnsiPos 1, 16
Print "@X0B│ ││ │"
AnsiPos 1, 17
Print "@X0B│@X80 @X0B││@X80 @X0B│"
AnsiPos 1, 18
Print "@X0B│ ││ │"
AnsiPos 1, 19
Print "@X0B└─────┘└─────┘"
AnsiPos 10, 11
Print TSTRING007(2)
AnsiPos 3, 17
Print TSTRING007(7)
AnsiPos 10, 17
Print TSTRING007(8)
Gosub LABEL019
Gosub LABEL020
If (INTEGER013 == 21) Then
STRING013 = "HAND2"
Endif
:LABEL025
STRING002 = ""
AnsiPos 1, 21
Print "@X0DHand1 = ", INTEGER013, " & @X0DHand2 = ", INTEGER006
AnsiPos 69, 7
Print "@X74", Right(MONEY004, 7)
If (TINTEGER015(1) == 1) Then
AnsiPos 1, 14
Print "@X0E", Space(43)
STRING002 = "S"
Goto LABEL007
Endif
If (STRING013 == "HAND1") Then
AnsiPos 1, 14
InputStr "What do you want to do - hand1? (H,S)", STRING002, 14, 1, "HS", 8
AnsiPos 1, 14
Print Space(43)
Else
AnsiPos 1, 20
InputStr "What do you want to do - hand2? (H,S)", STRING002, 14, 1, "HS", 8
AnsiPos 1, 20
Print Space(43)
Endif
If ((STRING002 == "H") && (STRING013 == "HAND1")) Then
INTEGER017 = INTEGER017 + 1
If (INTEGER017 == 3) Then
INTEGER021 = 15
Endif
If (INTEGER017 == 4) Then
INTEGER021 = 22
Endif
If (INTEGER017 == 5) Then
INTEGER021 = 29
Endif
If (INTEGER017 == 6) Then
INTEGER021 = 36
Endif
AnsiPos INTEGER021, 9
Print "@X0B┌─────┐"
AnsiPos INTEGER021, 10
Print "@X0B│ │"
AnsiPos INTEGER021, 11
Print "@X0B│@X80 @X0B│"
AnsiPos INTEGER021, 12
Print "@X0B│ │"
AnsiPos INTEGER021, 13
Print "@X0B└─────┘"
AnsiPos INTEGER021 + 2, 11
Print TSTRING007(INTEGER017)
Gosub LABEL019
If (INTEGER013 >= 21) Then
STRING013 = "HAND2"
Endif
Goto LABEL025
Endif
If ((STRING002 == "H") && (STRING013 == "HAND2")) Then
INTEGER024 = INTEGER024 + 1
If (INTEGER024 == 9) Then
INTEGER021 = 15
Endif
If (INTEGER024 == 10) Then
INTEGER021 = 22
Endif
If (INTEGER024 == 11) Then
INTEGER021 = 29
Endif
If (INTEGER024 == 12) Then
INTEGER021 = 36
Endif
AnsiPos INTEGER021, 15
Print "@X0B┌─────┐"
AnsiPos INTEGER021, 16
Print "@X0B│ │"
AnsiPos INTEGER021, 17
Print "@X0B│ │"
AnsiPos INTEGER021, 18
Print "@X0B│ │"
AnsiPos INTEGER021, 19
Print "@X0B└─────┘"
AnsiPos INTEGER021 + 2, 17
Print TSTRING007(INTEGER024)
Gosub LABEL020
If (INTEGER006 >= 21) Then
STRING002 = "S"
Goto LABEL007
Endif
Goto LABEL025
Endif
If ((STRING002 == "S") && (STRING013 == "HAND1")) Then
STRING013 = "HAND2"
Goto LABEL025
Endif
If ((STRING002 == "S") && (STRING013 == "HAND2")) Then
Goto LABEL007
Endif
Goto LABEL025
:LABEL026
AnsiPos 3, 4
Print Space(3)
AnsiPos 10, 4
Print Space(3)
AnsiPos 3, 11
Print Space(3)
AnsiPos 10, 11
Print Space(3)
AnsiPos 15, 2
Print Space(29)
AnsiPos 15, 3
Print Space(29)
AnsiPos 15, 4
Print Space(29)
AnsiPos 15, 5
Print Space(29)
AnsiPos 15, 6
Print Space(29)
AnsiPos 15, 9
Print Space(29)
AnsiPos 15, 10
Print Space(29)
AnsiPos 15, 11
Print Space(29)
AnsiPos 15, 12
Print Space(29)
AnsiPos 15, 13
Print Space(29)
AnsiPos 1, 14
Print Space(43)
AnsiPos 1, 15
Print Space(43)
AnsiPos 1, 16
Print Space(43)
AnsiPos 1, 17
Print Space(43)
AnsiPos 1, 18
Print Space(43)
AnsiPos 1, 19
Print Space(43)
AnsiPos 1, 20
Print Space(43)
AnsiPos 1, 21
Print Space(80)
Return
:LABEL027
If (FileInf(PPEPath() + "bj.DAT", 1) <> 1) Then
FCreate 0, PPEPath() + "bj.DAT", 2, 0
INTEGER008 = 0
FPutLn 0, INTEGER008
FClose 0
Else
FOpen 0, PPEPath() + "bj.DAT", 0, 0
FGet 0, INTEGER008
For INTEGER010 = 1 To INTEGER008
FGet 0, TDATE001(INTEGER010)
FGet 0, TSTRING003(INTEGER010)
FGet 0, TMONEY001(INTEGER010)
TSTRING003(INTEGER010) = RTrim(TSTRING003(INTEGER010), " ")
TDATE001(INTEGER010) = RTrim(TDATE001(INTEGER010), " ")
If (TDATE001(INTEGER010) == Date()) Then
If (TSTRING003(INTEGER010) == U_Name()) Then
STRING002 = "NO"
FClose 0
Goto LABEL028
Endif
Continue
Endif
If (TSTRING003(INTEGER010) == U_Name()) Then
MONEY002 = TMONEY001(INTEGER010)
INTEGER009 = INTEGER010
STRING004 = "YES"
Endif
Next
FClose 0
Endif
:LABEL028
If (STRING002 == "NO") Then
AnsiPos 1, 20
Print "Sorry, you have already played once today....."
AnsiPos 1, 21
Wait
End
Endif
If (MONEY002 < MONEY003) Then
MONEY002 = MONEY003
Endif
Return
:LABEL029
Cls
PrintLn "@X0C█████ █ ████ █████ █ █ █ ████ █████ █ █ @X0B┌─────┐"
PrintLn "@X0D█ █ █ █ █ █ █ █ █ █ █ █ █ █ @X0B│@X0C @X0B│ ┌─────┐"
PrintLn "@X05█████ █ ██████ █ ██ █ ██████ █ ██ @X0B│ @X04J @X0B│ │@X0C @X0B│"
PrintLn "@X0D█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ @X0B│@X0C @X0B│ │ @X04A @X0B│"
PrintLn "@X0C█████ █████ █ █ █████ █ █ ███ █ █ █████ █ █ @X0B└─────┘ @X0B│@X0C @X0B│"
PrintLn "@X0D @X0B└─────┘"
PrintLn "@X0ACopyright (c) 1994 Tin Shack Software"
PrintLn
PrintLn
PrintLn "@X0E NAMES HIGH SCORE LAST PLAY"
PrintLn "@X0C ──────────────────────────────────────────────────────────────@X0E"
For INTEGER010 = 1 To 5
AnsiPos 1, INTEGER010 + 11
Print "@X05 ", Left(ReadLine(PPEPath() + "bj.dat", INTEGER010 * 3), 25)
AnsiPos 25, INTEGER010 + 11
Print "@X05 ", Right(ReadLine(PPEPath() + "bj.dat", INTEGER010 * 3 + 1), 16)
AnsiPos 50, INTEGER010 + 11
Print "@X05 ", Right(ReadLine(PPEPath() + "bj.dat", INTEGER010 * 3 - 1), 9)
Next
PrintLn
PrintLn
Return
:LABEL030
Cls
PrintLn
PrintLn "@X01 @X71┌────────────────────────────────────────────────────┐@X00"
PrintLn "@X01 @X78│ @X71│@X00"
PrintLn "@X01 @X78│ @X74 UNREGISTERED version @X71│@X00"
PrintLn "@X01 @X78│ @X71│@X00"
PrintLn "@X01 @X78│ @X74 BLACKJACK V(1.0) @X71│@X00"
PrintLn "@X01 @X78│ @X71│@X00"
PrintLn "@X01 @X78│ @X71│@X00"
PrintLn "@X01 @X78│ @X74 You can register me for $10 - refer to @X71│@X00"
PrintLn "@X01 @X78│ @X74 the documentation supplied with the program. @X71│@X00"
PrintLn "@X01 @X78│ @X71│@X00"
PrintLn "@X01 @X78└────────────────────────────────────────────────────@X71┘@X00"
PrintLn "@X01"
PrintLn "@X0ACopyright (c) 1994 Tin Shack Software"
AnsiPos 1, 18
PrintLn "Please wait...."
Delay 180
Return
:LABEL031
Cls
AnsiPos 25, 1
Print "@X0DB L A C K J A C K"
Newline
PrintLn "@X0EThe object of the game is to have cards whose numerical value totals"
PrintLn "21, or as close to 21 as possible without exceeding 21. If the player's"
PrintLn "first 2 cards count exactly 21 - that is, if they are a face card or"
PrintLn "ten and an ace - player has a BLACKJACK and wins immediately, unless"
PrintLn "dealer also has a BLACKJACK."
PrintLn
PrintLn " Rules:"
PrintLn "Dealer will not hit on any hand equal to or higher than 17. If dealer busts"
PrintLn "then you automatically win. If you bust your hand dealer automatically wins."
PrintLn
PrintLn " Winnings:"
PrintLn "When the player has BLACKJACK, the dealer pays 2 times the amount of the"
PrintLn "player's bet. If player's hand equals dealer's hand player wins amount of bet."
PrintLn
PrintLn " SPLIT:"
PrintLn "If the player's first 2 cards are the same - as in 2 fives, or 2 tens"
PrintLn "and player wishes to SPLIT, then players original bet is doubled - same"
PrintLn "bet for both hands."
More
PrintLn " Playing:"
PrintLn "Before the cards are dealt a bet must be made. Player may bet any amount"
PrintLn "($1.00 minimum) but not to exceed their amount available. Once bet is placed"
PrintLn "the cards will be shuffled and dealt. Only one of the dealer's cards"
PrintLn "will be visable to the player. At this time, depending on the player's "
PrintLn "hand, player can either (h)it, (s)tay, (d)ouble down or (sp)lit."
PrintLn
PrintLn " Double Down:"
PrintLn "Double down allows the player to double their bet and to be hit with only"
PrintLn "one card, which hopefully will be equal to 21."
PrintLn
PrintLn " Insurance:"
PrintLn "After the cards are dealt and the dealer has an ACE showing you will be asked"
PrintLn "if you wish to buy insurance. If you choose to buy insurance, you can buy up"
PrintLn "to $5.00 worth. If the dealers hand does not turn out to be 21 then your"
PrintLn "insurance will be displayed in () to be deducted at the end of that hand. "
PrintLn "If dealer turns up 21 you win 2 to 1 on your insurance but you still lose your"
PrintLn "original bet."
PrintLn "@X8CNote: @X0Efor every BLACKJACK you get, you'll get an extra 10 minutes"
PrintLn "added to your session."
PrintLn " End of instructions/rules"
Wait
Goto LABEL001
:LABEL032
STRING017 = Time()
STRING016 = "Ended BLACKJACK at "
Log STRING016 + STRING017, 1
If (INTEGER001 <> 942702) Then
Gosub LABEL030
AnsiPos 1, 21
Wait
Else
Gosub LABEL029
AnsiPos 1, 21
Print Space(30)
AnsiPos 1, 21
Wait
Endif
End
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 2 End
; 8 Cls
; 1 More
; 7 Wait
; 268 Goto
; 225 Let
; 167 Print
; 68 PrintLn
; 166 If
; 1 DispFile
; 1 FCreate
; 4 FOpen
; 6 FClose
; 7 FGet
; 8 FPutLn
; 1 GetUser
; 1 AdjTime
; 2 Log
; 8 InputStr
; 2 InputYN
; 25 Gosub
; 30 Return
; 2 Delay
; 6 Newline
; 4 InputText
; 178 AnsiPos
;
;
; ■ Functions used :
;
; 23 *
; 84 +
; 18 -
; 116 ==
; 7 <>
; 31 <
; 39 <=
; 39 >
; 41 >=
; 160 !
; 84 &&
; 23 ||
; 18 Mid()
; 1 Left()
; 14 Right()
; 41 Space()
; 2 RTrim()
; 2 Random()
; 3 Date()
; 2 Time()
; 8 U_Name()
; 2 YesChar()
; 10 PPEPath()
; 3 ReadLine()
; 5 SysopSec()
; 5 CurSec()
; 6 MinLeft()
; 1 S2I()
; 1 FileInf()
;
;------------------------------------------------------------------------------
;
; Analysis flags : As
;
; A - Adjust online time remaining ■ 5
; Program modify the amount of online time remaining, this may
; be a way to bypass time limits
; ■ Search for : ADJTIME
;
; s - Sysop level access ■ 5
; Program is reading the sysop access level, this may be normal
; but still it is very suspect. It is the best way to give a user
; all priviledges. Check!
; ■ Search for : SYSOPSEC()
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 16 For/Next
; 1 While/EndWhile
; 143 If/Then or If/Then/Else
; 0 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------